|
|
|
|
|
|
|
Parallel and Serial Work Routing |
|
|
|
|
|
|
|
|
The completion of a sequence of events in a use case typically occurs in parallel with the completion of other independent use cases in order to reduce the cycle time it takes to deliver an end product to some beneficiary. In the case of a bank, that beneficiary is usually the customer. With parallel routing, you don't want to design every organization process or task to be unnecessarily dependent on another. |
|
|
|
|
|
|
|
|
For instance, among the set of use cases for the Second Bank of Carrollton, a bank teller could perform the use cases Deposit New Funds and Withdraw Funds on behalf of a customer in any order because the performance of one is not dependent on the performance of the other. In the case of the use case Open a New Account, two tasks are involved that can and should occur in parallel: (a) verifying the customer's previous checking account histories at all banks and (b) verifying if the customer has other accounts with the bank. |
|
|
|
|
|
|
|
|
Whether your client wants to design serial or parallel routing of work, you might consider an architecture that allows the client the flexibility of choosing either or both. If the routing is serial, the navigation from one process or task to another is similar to navigating records in a recordset. Consider a single process with three tasks, for instance. This process is the responsibility of one workgroup. Further, assume that the process is fully automated and that messaging between roles in the workgroup are taken care of by some class, WorkMessenger, that hides all the details of sending messages once a task is completed. For your purposes, it will be an empty class that only displays a message box with the message Work has arrived. In Visual Basic, you could design and implement a simplified set of classes as listed in Table 13.1. |
|
|
|
|
| TABLE 13.1. SAMPLE CLASSES FORWorkMessenger. | | Class/Module Name | Notable Member | Description | | modWorkflow | | A global module that contains declarations used by the classes in the Workgroup and User Security Subsystem. | | eProcess | An Enum that identifies a particular instance of a process in the AllProcesses collection. | | eRole | An Enum that identifies a particular instance of a role in the AllRoles collection. | | eTasks | An Enum that represents the tasks necessary to complete the process. | | SomeWorkgroup | | A workgroup class. | | Proxy | | |
|
|
|
|
|
|
(table continued on next page) |
|
|
|
|
|